﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Agent.Messaging
{
  /// <summary>
  /// The possible state of the state machine for the <see cref="MessageSender"/> and <see cref="MessageRecevier"/> classes
  /// </summary>
  public enum SenderReceiverStateMachineState
  {
    /// <summary>
    /// The object is not initialized; this is the initial state
    /// </summary>
    Uninitialized,

    /// <summary>
    /// The object is initialized but is not currently running
    /// </summary>
    Initialized,

    /// <summary>
    /// The object is starting up
    /// </summary>
    Starting,

    /// <summary>
    /// The object is in the running steady-state
    /// </summary>
    Running,

    /// <summary>
    /// The object is in the disconnected state (used only by <see cref="MessageRecevier"/>)
    /// </summary>
    Disconnected,

    /// <summary>
    /// The object is stopping, but hasn't yet stopped
    /// </summary>
    Stopping,

    /// <summary>
    /// The object is in an error state
    /// </summary>
    Error,

    /// <summary>
    /// The object has been disposed
    /// </summary>
    Disposed,
  }
}
